package uniandes.cupi2.musiteka.cliente.interfaz;

import javax.swing.JOptionPane;
import javax.swing.JPanel;
import java.awt.Frame;
import java.awt.BorderLayout;
import javax.swing.JDialog;
import java.awt.Dimension;
import javax.swing.JScrollPane;
import java.awt.Rectangle;
import javax.swing.BorderFactory;
import javax.swing.border.TitledBorder;
import java.awt.Font;
import java.awt.Color;
import javax.swing.JList;
import java.awt.GridBagLayout;
import java.util.ArrayList;
import java.util.Iterator;

import javax.swing.JButton;

import uniandes.cupi2.musiteka.servidor.mundo.ICancion;
import uniandes.cupi2.musiteka.servidor.mundo.IMusiteka;
import uniandes.cupi2.musiteka.servidor.mundo.musiteka1.Musiteka;

public class DialogoListaCancionesFavoritas extends JDialog {

	private static final long serialVersionUID = 1L;
	private JPanel jContentPane = null;
	private JScrollPane jScrollPaneListaCancionesFavoritas = null;
	private JList jListListaCancionesFavoritas = null;
	private JPanel jPanelPanelBotones = null;
	private JButton jButtonActualizar = null;
	private JButton jButtonCerrar = null;
	public InterfazMusiteka  mundo;

	/**
	 * @param owner
	 */
	public DialogoListaCancionesFavoritas(InterfazMusiteka  nMundo) {
		mundo=nMundo;
		super.setVisible(true);
		initialize();
	}

	/**
	 * This method initializes this
	 * 
	 * @return void
	 */
	private void initialize() {
		this.setSize(262, 349);
		this.setTitle("Lista Canciones favoritas");
		this.setContentPane(getJContentPane());
	}

	/**
	 * This method initializes jContentPane
	 * 
	 * @return javax.swing.JPanel
	 */
	private JPanel getJContentPane() {
		if (jContentPane == null) {
			jContentPane = new JPanel();
			jContentPane.setLayout(null);
			jContentPane.add(getJScrollPaneListaCancionesFavoritas(), null);
			jContentPane.add(getJPanelPanelBotones(), null);
		}
		return jContentPane;
	}

	/**
	 * This method initializes jScrollPaneListaCancionesFavoritas	
	 * 	
	 * @return javax.swing.JScrollPane	
	 */
	private JScrollPane getJScrollPaneListaCancionesFavoritas() {
		if (jScrollPaneListaCancionesFavoritas == null) {
			jScrollPaneListaCancionesFavoritas = new JScrollPane();
			jScrollPaneListaCancionesFavoritas.setBounds(new Rectangle(15, 0, 226, 226));
			jScrollPaneListaCancionesFavoritas.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
			jScrollPaneListaCancionesFavoritas.setViewportView(getJListListaCancionesFavoritas());
			jScrollPaneListaCancionesFavoritas.setBorder(BorderFactory.createTitledBorder(null, "Lista", TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.DEFAULT_POSITION, new Font("Dialog", Font.BOLD, 12), new Color(51, 51, 51)));
		}
		return jScrollPaneListaCancionesFavoritas;
	}

	/**
	 * This method initializes jListListaCancionesFavoritas	
	 * 	
	 * @return javax.swing.JList	
	 */
	private JList getJListListaCancionesFavoritas() {
		if (jListListaCancionesFavoritas == null) {
			jListListaCancionesFavoritas = new JList();
		}
		return jListListaCancionesFavoritas;
	}

	/**
	 * This method initializes jPanelPanelBotones	
	 * 	
	 * @return javax.swing.JPanel	
	 */
	private JPanel getJPanelPanelBotones() {
		if (jPanelPanelBotones == null) {
			jPanelPanelBotones = new JPanel();
			jPanelPanelBotones.setLayout(null);
			jPanelPanelBotones.setBounds(new Rectangle(15, 240, 226, 61));
			jPanelPanelBotones.add(getJButtonActualizar(), null);
			jPanelPanelBotones.add(getJButtonCerrar(), null);
		}
		return jPanelPanelBotones;
	}

	/**
	 * This method initializes jButtonActualizar	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getJButtonActualizar() {
		if (jButtonActualizar == null) {
			jButtonActualizar = new JButton();
			jButtonActualizar.setBounds(new Rectangle(15, 15, 91, 31));
			jButtonActualizar.setText("Actualizar");
			jButtonActualizar.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					ArrayList<String>lista=new ArrayList();
					Iterator<ICancion> aux= (Iterator<ICancion>) mundo.listaCancionesFavoritas();
					if(mundo.listaCancionesFavoritas()==null)
					{
						JOptionPane.showMessageDialog(null, "no hay canciones registradas como favoritas");
					}
					else
					{
						while(aux.hasNext())
						{
							lista.add(aux.next().darNombre());
						}
						jListListaCancionesFavoritas.setListData(lista.toArray());
					}
					
					
					
					//jListListaCancionesFavoritas.setListData(lista.toArray());
					
					
				}
			});
		}
		return jButtonActualizar;
	}

	/**
	 * This method initializes jButtonCerrar	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getJButtonCerrar() {
		if (jButtonCerrar == null) {
			jButtonCerrar = new JButton();
			jButtonCerrar.setBounds(new Rectangle(120, 15, 91, 31));
			jButtonCerrar.setText("Cerrar");
			jButtonCerrar.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					dispose();
				}
			});
		}
		return jButtonCerrar;
	}

}  //  @jve:decl-index=0:visual-constraint="10,10"
